package com.lbt.javaSE.jianzhioffer;

public class JZ11 {
    public int NumberOf1(int n) {
        int count=0;
        while (n!=0){
            if((n&1)!=0) count++;
            n=n>>1;
        }
        return count;
    }

    public static void main(String[] args) {
        Integer a=123;
        String s = Integer.toBinaryString(123);
        System.out.println(s);
        int i = new JZ11().NumberOf1(a);
        System.out.println(i);

    }
    /*
    *如果当前位是0， 还是会做判断，然后一位一位的移动。
        如果，给你一种超能力，你一下可以对从右向左的第一位1直接判断，遇到0直接略过，那效率是不是很快
    * */
    public int NumberOf2(int n){
        int ans = 0;
        while (n != 0){
            ++ans;
            n = n & (n-1);
        }
        return ans;
    }
}
